package cn.tedu.oop;

/**该类用于测试构造函数入门案例
 * @author ：Dsi
 * @date ：2021/11/8 10:06
 */
public class TestConstructor {
    public TestConstructor() {

    }

    public static void main(String[] args) {
        //无参构造
        Person p=new Person();
        Person p1=new Person(); //p1执行了Person的构造方法
        p.eat();
        //含参构造
        Person p3=new Person(3);
        //全参构造创建
        Person p4=new Person("lisi",45,"太阳路");

    }
}
class Person {
    String name;
    int age;
    String address;

    public Person(String name, int age, String address) {
        this.name = name;
        this.age = age;
        this.address = address;
        System.out.println("我是person的全参构造");
        System.out.println(name);
    }

    /**1.每次new（实例化）对象时，都会自动触发执行对应类的构造方法
     * 2.每个类中都会默认存在一个没有参数的构造方法
     * 但是如果提供了其他的构造函数，默认的构造函数被覆盖
     * 需要手动的提供无参构造，才能不传参数越也能创建对象
     * 3.构造方法的格式：与本类类名同名，且没有返回值类型
     * 4.*/

    public Person(){
      System.out.println("我是Person的无参构造方法");
   }
    public Person(int a){
        System.out.println("我是person的含参构造方法"+a);
    }
    public void eat(){
        System.out.println("吃饭");
    }
}